package com.winning.ds.role.dao;

import com.winning.ds.common.entity.MenuTreeEntity;
import com.winning.ds.common.entity.SysSjyzymlEntity;
import com.winning.ds.common.entity.SysUserEntity;
import com.winning.ds.common.jdbc.BaseDao;
import com.winning.ds.role.entity.KsxxEntity;
import com.winning.ds.role.entity.PtLoginsEntity;
import com.winning.ds.role.entity.YhryxxEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/** @Author: lxd@winning.com.cn @Description: 系统用户 @Date: 2018-06-21 09:10:18 */
@Mapper
public interface SysUserDao extends BaseDao<SysUserEntity> {

  // 根据用户名，查询系统用户
  SysUserEntity queryByUserName(String username);

  // 根据用户名，查询系统用户
  SysUserEntity selectByUserName(String username);

  // 根据机构编码查询所有用户列表
  List<SysUserEntity> queryList(Map<String, Object> queryParams);

  // 新增保存用户
  int insert(SysUserEntity user);

  // 更新用户
  int updateUser(SysUserEntity user);

  // 删除用户
  int deleteUser(String userId);

  // 根据机构编码查询所有未建用户的医护人员列表
  List<YhryxxEntity> yhryList(Map<String, Object> queryParams);

  List<SysSjyzymlEntity> queryZwDic();

  List<KsxxEntity> queryKsxx(@Param("jgdm") String jgdm);

  int saveUserRole(Map userRole);

  List<SysUserEntity> getUserRole(@Param("zclsh") String zclsh);

  // 批量导入用户
  int pldrYh(SysUserEntity user);

  // 删除用户角色信息
  int delUserRole(String zclsh);

  List<MenuTreeEntity> getQxList(String zclsh);

  // 查询当前机构开通的菜单权限
  List<MenuTreeEntity> getMenuByJgbm(String jgbm);

  // 查询权限用户列表
  List<SysUserEntity> queryQxyhList(Map<String, Object> queryParams);

  String getMaxDldm(@Param("dldm") String dldm);

  // 查询用户映射列表
  List<PtLoginsEntity> queryUserMappingList(Map<String, String> queryParams);

  // 更新用户映射关系
  int updateUserMapping(Map<String, String> queryParams);

  // 新增用户映射关系
  int insertUserMapping(Map<String, String> queryParams);

  // 删除用户映射关系
  int delUserMapping(Map<String, String> queryParams);

  List<Map<String, Object>> getOptionList(@Param("qzsql") String qzsql);
}
